{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Modeling and Simulation in Python\n",
    "\n",
    "Rabbit example\n",
    "\n",
    "Copyright 2017 Allen Downey\n",
    "\n",
    "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "from modsim import *"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Rabbit Redux\n",
    "\n",
    "This notebook starts with a version of the rabbit population growth model and walks through some steps for extending it.\n",
    "\n",
    "In the original model, we treat all rabbits as adults; that is, we assume that a rabbit is able to breed in the season after it is born.  In this notebook, we extend the model to include both juvenile and adult rabbits.\n",
    "\n",
    "As an example, let's assume that rabbits take 3 seasons to mature.  We could model that process explicitly by counting the number of rabbits that are 1, 2, or 3 seasons old.  As an alternative, we can model just two stages, juvenile and adult.  In the simpler model, the maturation rate is 1/3 of the juveniles per season.\n",
    "\n",
    "To implement this model, make these changes in the System object:\n",
    "\n",
    "1.  Replace `p0` with two initial populations: `juvenile_pop0` and `adult_pop0`, with values `0` and `10`.\n",
    "\n",
    "2.  Add an additional variable, `mature_rate`, with the value `0.33`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>value</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>t0</th>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>t_end</th>\n",
       "      <td>30.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>juvenile_pop0</th>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>adult_pop0</th>\n",
       "      <td>10.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>birth_rate</th>\n",
       "      <td>0.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mature_rate</th>\n",
       "      <td>0.33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>death_rate</th>\n",
       "      <td>0.50</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "t0                0.00\n",
       "t_end            30.00\n",
       "juvenile_pop0     0.00\n",
       "adult_pop0       10.00\n",
       "birth_rate        0.90\n",
       "mature_rate       0.33\n",
       "death_rate        0.50\n",
       "dtype: float64"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "system = System(t0 = 0, \n",
    "                t_end = 30,\n",
    "                juvenile_pop0 = 0,\n",
    "                adult_pop0 = 10,\n",
    "                birth_rate = 0.9,\n",
    "                mature_rate = 0.33,\n",
    "                death_rate = 0.5)\n",
    "\n",
    "system"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now update `run_simulation` with the following changes:\n",
    "\n",
    "1.  Add a second TimeSeries, named `juveniles`, to keep track of the juvenile population, and initialize it with `juvenile_pop0`.\n",
    "\n",
    "2.  Inside the for loop, compute the number of juveniles that mature during each time step.\n",
    "\n",
    "3.  Also inside the for loop, add a line that stores the number of juveniles in the new `TimeSeries`.  For simplicity, let's assume that only adult rabbits die.\n",
    "\n",
    "4.  During each time step, subtract the number of maturations from the juvenile population and add it to the adult population.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def run_simulation(system):\n",
    "    \"\"\"Runs a proportional growth model.\n",
    "    \n",
    "    Adds TimeSeries to `system` as `results`.\n",
    "    \n",
    "    system: System object with t0, t_end, p0,\n",
    "            birth_rate and death_rate\n",
    "    \"\"\"\n",
    "    juveniles = TimeSeries()\n",
    "    juveniles[system.t0] = system.juvenile_pop0\n",
    "    \n",
    "    adults = TimeSeries()\n",
    "    adults[system.t0] = system.adult_pop0\n",
    "    \n",
    "    for t in linrange(system.t0, system.t_end):\n",
    "        maturations = system.mature_rate * juveniles[t]\n",
    "        births = system.birth_rate * adults[t]\n",
    "        deaths = system.death_rate * adults[t]\n",
    "        \n",
    "        if adults[t] > 30:\n",
    "            market = adults[t] - 30\n",
    "        else:\n",
    "            market = 0\n",
    "            \n",
    "        juveniles[t+1] = juveniles[t] + births - maturations\n",
    "        adults[t+1] = adults[t] + maturations - deaths - market\n",
    "        \n",
    "    system.adults = adults\n",
    "    system.juveniles = juveniles"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Test your changes in `run_simulation`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>value</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>10.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5.470000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>6.209900</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>7.057723</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>8.021560</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>9.117031</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>10.362107</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>11.777219</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>13.385586</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>15.213601</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>17.291261</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>19.652658</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>22.336542</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>25.386953</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>28.853947</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>32.794414</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>34.478600</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>36.487431</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>37.893339</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>39.401924</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>40.546917</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>41.694992</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>42.613800</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>43.495581</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>44.226171</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>44.907656</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>45.485241</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>46.014130</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>46.469075</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>46.880673</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>47.238170</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "0     10.000000\n",
       "1      5.000000\n",
       "2      5.470000\n",
       "3      6.209900\n",
       "4      7.057723\n",
       "5      8.021560\n",
       "6      9.117031\n",
       "7     10.362107\n",
       "8     11.777219\n",
       "9     13.385586\n",
       "10    15.213601\n",
       "11    17.291261\n",
       "12    19.652658\n",
       "13    22.336542\n",
       "14    25.386953\n",
       "15    28.853947\n",
       "16    32.794414\n",
       "17    34.478600\n",
       "18    36.487431\n",
       "19    37.893339\n",
       "20    39.401924\n",
       "21    40.546917\n",
       "22    41.694992\n",
       "23    42.613800\n",
       "24    43.495581\n",
       "25    44.226171\n",
       "26    44.907656\n",
       "27    45.485241\n",
       "28    46.014130\n",
       "29    46.469075\n",
       "30    46.880673\n",
       "31    47.238170\n",
       "dtype: float64"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "run_simulation(system)\n",
    "system.adults"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next, update `plot_results` to plot both the adult and juvenile `TimeSeries`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def plot_results(system, title=None):\n",
    "    \"\"\"Plot the estimates and the model.\n",
    "    \n",
    "    system: System object with `results`\n",
    "    \"\"\"\n",
    "    newfig()\n",
    "    plot(system.adults, 'bo-', label='adults')\n",
    "    plot(system.juveniles, 'gs-', label='juveniles')\n",
    "    decorate(xlabel='Season', \n",
    "             ylabel='Rabbit population',\n",
    "             title=title)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And test your updated version of `plot_results`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nmTPp27evvYtmV4cPH2b+/PmkpKRQVlZG165dmTVrFr169bJ30ZrFbbfdxqlTp9A0jcrKSlxdXdHp\ndNxxxx28+OKLbN68mTfffJPMzEwMBgNjx45lypQpbfaPFzT+njzzzDO8/fbbrF+/nrNnz2I0Ghk/\nfjwTJkzA2dnZ3kW/anbt2sV9991nfS9qc9R75WLviaPeKxkZGbz22mskJyfj5OREdHQ0jzzyCEOG\nDAFo9vvE4cNfCCGEcDQO3ewvhBBCOCIJfyGEEMLBSPgLIYQQDkbCXwghhHAwEv5CCCGEg5HwF0II\nIRyMi70LIISwn5SUFN5//31SU1M5d+6cdTvRcePGMWLECHsXTwhxlUjNXwgHtWPHDsaNG4ezszP/\n+7//y9atW1m5ciWdO3dm+vTprF692t5FFEJcJVLzF8JBffTRR4SEhLBgwQLrKmKhoaF0796dsrIy\nfvnlFzuXUAhxtUj4C+GgysvLqa6uprKyEjc3N5tz8+fPt36vaRrvv/8+a9eu5fjx43h7e/O73/2O\nJ5980manthUrVvDJJ5+QlZWFl5cXCQkJzJgxgy5dulhfZ+nSpaxdu5bTp0+j1+vp168fs2bNIiIi\nAgCTycTf//53Nm7cyPnz5wkICGDIkCFMnz4dHx8fAO6//34CAgJITExk0aJFnDhxgoiICKZPn87g\nwYOv9tsmRJsgzf5COKhBgwZx5swZxo8fz+bNmykuLq73uiVLlvD6668zcuRIvvrqK55//nm++eYb\nZs6cab1m7dq1vPrqq0yYMIHNmzezcuVKnJycePjhhykvLwfgs88+Y+nSpcyYMYNNmzaxbNkyCgsL\nmTJlivV15s6dy2effcaTTz7Jhg0bePbZZ9m6dSt/+ctfbMp08OBB1qxZw/z58/nss8/w9fVlxowZ\nlJSUXIV3Sog2SBNCOCSz2awtWrRI69GjhxYbG6vFx8dro0aN0hYuXKhlZmZqmqZpFRUVWp8+fbRZ\ns2bZPPeLL77QYmNjtYyMDE3TNK2goEBLT0+3ueb777/XYmNjtdTUVE3TNO3ZZ5/VEhMTba7JycnR\n9u7dq1VXV2vZ2dlaXFyctnz5cptrPvroIy02NlY7evSopmmaNn78eC0hIUHLycmxXvP1119rsbGx\n2p49e377GyOEA5CavxAOSqfTMW3aNLZv384bb7zB3XffTXFxMe+88w6JiYl8+umnHD58mOLiYq67\n7jqb5w4cOBCAffv2AeDp6cn333/PXXfdxbXXXkvv3r2ZNm0aoLZwBRg8eDCZmZlMnDjR2vQfGBhI\nQkICTk5O/PLLL2iaRp8+fWx+V8+ePQHYv3+/9ViHDh0IDAy0/mz53vK7hBCNkz5/IRycj48Pt99+\nO7fffjsAe/fuZcaMGbzwwgu89957ADz99NM8++yzdZ577tw5AF577TVWrVrFtGnTGDx4MN7e3qSm\npjJjxgzrtTfddBMffPABH3zwAS+99BJFRUX07NmTWbNm0bdvX2u3g7e3t83v8PLyArBp0q891gCw\nDljUZJNSIS6JhL8QDspkMgHg7u5uc7x79+488cQTPP7445jNZgBmzJjBoEGD6ryGn58fAOvWrWP4\n8OHW2j6oDxEX6tevH/369aOqqork5GTeeustJk+ezL///W/rgL6ioiKb51h+9vX1vdJ/qhDiAtLs\nL4QDOnv2LP369WPJkiX1nj9x4gQAkZGR+Pr6curUKTp06GB9hIWFYTab8ff3B6CiooKAgACb11i7\ndi1QUxvftm0bGRkZALi4uDBgwADmzJlDSUkJR48epVu3bjg5OZGcnGzzOrt370an05GQkNB0b4AQ\nDk5q/kI4oODgYO677z6WLl2KyWTitttuw2g0UlRUxA8//MBbb73FPffcQ2hoKA899BCLFy8mIiKC\n66+/nuLiYpYtW8aOHTvYtGkT/v7+9O7dm82bNzNixAi8vLz4xz/+Qfv27QFITU2ld+/efP755+zf\nv5+//vWvREdHU1xczIoVKzAYDMTExODt7c3IkSNZunQp7dq1o3v37uzdu5dFixYxfPhwwsPD7fyu\nCdF2SPgL4aBmz55Nt27d+Oyzz1i3bh15eXl4enrSuXNnnn76ae6++24ApkyZgqenJx988AEvv/wy\n7u7uXHvttaxatcpa83/22Wd5+umnmTBhAn5+ftx7771MmTKFvLw8li1bhouLCy+88AILFizgqaee\nIicnB19fX3r27Ml7771n7ed/4YUXCAwM5NVXXyUnJweDwcCoUaPqTPUTQvw2Ok1GyAghhBAORfr8\nhRBCCAcj4S+EEEI4GAl/IYQQwsFI+AshhBAORsJfCCGEcDAS/kIIIYSDkfAXQgghHIyEvxBCCOFg\nJPyFEEIIB/P/I/Jd/ZYeqlQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fcb06505128>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_results(system, title='Proportional growth model')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This notebook demonstrates the steps we recommend for starting your project:\n",
    "\n",
    "1.  Start with one of the examples from the book, either by copying a notebook or pasting code into a new notebook.  Get the code working before you make any changes.\n",
    "\n",
    "2.  Make one small change, and run the code again.\n",
    "\n",
    "3.  Repeat step 2 until you have a basic implementation of your model.\n",
    "\n",
    "If you start with working code that you understand and make small changes, you can avoid spending a lot of time debugging.\n",
    "\n",
    "One you have a basic model working, you can think about what metrics to measure, what parameters to sweep, and how to use the model to predict, explain, or design."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Bonus question\n",
    "\n",
    "Suppose you only have room for 30 adult rabbits.  Whenever the adult population exceeds 30, you take any excess rabbits to market (as pets for kind children, of course).  Modify `run_simulation` to model this strategy.  What effect does it have on the behavior of the system?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "What happens if rabbits only take one season to mature?  Change `mature_rate` to 1.0 and run the simulation again."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
